package ar.com.seminario.service;

import java.util.Date;
import java.util.List;

import ar.com.seminario.common.service.exception.ServiceException;
import ar.com.seminario.dto.SolicitudIngresoDto;
import ar.com.seminario.model.SolicitudIngreso;
import ar.com.seminario.systema.model.TipoUsuario;

/**
 * Servicio de acceso a las solicitudes del sistema de RRHH.
 * 
 * @author Dario Camarro
 * @author Pablo Lamas
 * 
 */
public interface ISolicitudIngresoService {

	public List<SolicitudIngresoDto> getAllSolicitudes();

	public List<SolicitudIngresoDto> getSolicitudesPorFechaSolicitud(Date fechaSolicitud);

	public List<SolicitudIngresoDto> getAllSolicitudesAprobadas() throws ServiceException;

	public SolicitudIngresoDto getSolicitudDtoPorId(Long idSolicitud) throws ServiceException;

	public void saveSolicitudIngreso(SolicitudIngresoDto nuevaSolicitudIngresoDto) throws ServiceException;

	public void cerrarSolicitudIngreso(Long idSolicitud, String justificacion) throws ServiceException;

	public void rechazarSolicitudIngreso(Long idSolicitud, String justificacion) throws ServiceException;

	public void aprobarSolicitudIngreso(Long idSolicitud) throws ServiceException;

	public List<SolicitudIngresoDto> getAllSolicitudesByTipoUsuario(TipoUsuario tipoUsuario) throws ServiceException;

	public SolicitudIngreso getSolicitudPorId(Long idSolicitud);
}
